import axios from 'axios';
// import store from '@/store';
// import router from '@/router';
// import { getToken } from '@/utils/auth';
import * as code from '@/config/code';
import { Message } from 'element-ui';
const service = axios.create({
  timeout: 5000
});
service.defaults.withCredentials = true;
// service.interceptors.request.use(request => {
//   // if (store.getters.token) {
//   //     request.headers['user-token'] = getToken();
//   // }
//   return request;
// }, error => {
//   Promise.reject(error);
// });
//
// service.interceptors.response.use(function (response) {
//     // eslint-disable-next-line
//     process.env.NODE_ENV === 'development' && console.log(response)
//     return response
// }, function (error) {
//     // 返回错误处理
//     // 超时处理
//     if (error.code === 'ECONNABORTED' && error.message.indexOf('timeout') !== -1) {
//         Message.error('网络超时')
//         return error
//     }
//
//     // 其它错误处理
//     switch (error.response.status) {
//         case 401:
//             Message.error('登录信息失效')
//             store.dispatch('LogOut')
//             router.replace(`/${store.state.lang.language}/login`)
//             return
//         case 403:
//             Message.error('禁止访问')
//             break
//         case 404:
//             Message.error('资源不存在')
//             break
//         case 500:
//             Message.error('网络错误')
//             break
//         case 504:
//             Message.error('网络超时')
//             break
//         default:
//             break
//     }
//
//     return Promise.reject(error)
// })

export default function request (options) {
  return new Promise((resolve, reject) => {
    service(options)
      .then((res) => {
          /**
           *  else if (~code.NOT_LOGIN.indexOf(data.code)) {
                  // 重新登录
                }
           */
          if (~code.SUCCESS.indexOf(res.status)) {
          resolve(res.data);
        } else {
          // 在出口进行消息提示，而不用去处理每个子接口的消息提示和异常打印
          Message.error(res.data.message);
          reject(res.data);
        }
      })
      .catch((error) => {
        Message.error(error.message || '网络开了小差');
        reject(error);
      });
  });
}
